// 49.字母异位词分组
package Leetcode_Second_Brush;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class Solution049 {
    public static List<List<String>> groupAnagrams(String[] strs) {
        // 一个排序完的字符串对应一个list
        Map<String, List<String>> hashmap = new HashMap<>();
        for (String str : strs) {
            char[] array = str.toCharArray();
            Arrays.sort(array);
            String key = new String(array);
            // 如果没有则建立，如果有则添加值，hashmap比较键使用的是equal
            List<String> list = hashmap.getOrDefault(key, new ArrayList<String>());
            list.add(str);
            hashmap.put(key, list);
        }
        return new ArrayList<List<String>>(hashmap.values());
    }
}
